ignore case while filtering completions #6008
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2017
This PR changes the fuzzy matching in the completion menu to be always case insensitive.
We never really documented that it used smart casing and I don't think that is actually desirable here.
A common use-case for competitions is mistyping/misremembering an identifier and using autocomplete to fixup that problem. For that use-case case sensitive matching is actually detrimental. Other editors like nvim/vscode/intellij also seem to always use case insensitive auto completions.
Note that the original reproduction case from #2017 already seems to work:
However after this fix the following also works which doesn't work on master (see screenshot)
Note that we rank completions by their fuzzy matching score which gives a penalty for case mismatch in case ignore case is enabled soo if both
Foo
andFOO
exist both would show up butFoo
would be ranked first.